home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / c-lang / strmc105.lha / StormC-Demo / INCLUDE / clib / graphics_protos.h < prev    next >
C/C++ Source or Header  |  1996-01-02  |  14KB  |  309 lines

  1. #ifndef  CLIB_GRAPHICS_PROTOS_H
  2. #define  CLIB_GRAPHICS_PROTOS_H
  3.  
  4. /*
  5. **    $VER: graphics_protos.h 39.31 (29.4.93)
  6. **    Includes Release 40.15
  7. **
  8. **    C prototypes. For use with 32 bit integers only.
  9. **
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef  GRAPHICS_GFX_H
  15. #include <graphics/gfx.h>
  16. #endif
  17. #ifndef  GRAPHICS_DISPLAYINFO_H
  18. #include <graphics/displayinfo.h>
  19. #endif
  20. #ifndef  GRAPHICS_GELS_H
  21. #include <graphics/gels.h>
  22. #endif
  23. #ifndef  GRAPHICS_RASTPORT_H
  24. #include <graphics/rastport.h>
  25. #endif
  26. #ifndef  GRAPHICS_VIEW_H
  27. #include <graphics/view.h>
  28. #endif
  29. #ifndef  GRAPHICS_COPPER_H
  30. #include <graphics/copper.h>
  31. #endif
  32. #ifndef  GRAPHICS_CLIP_H
  33. #include <graphics/clip.h>
  34. #endif
  35. #ifndef  GRAPHICS_REGIONS_H
  36. #include <graphics/regions.h>
  37. #endif
  38. #ifndef  GRAPHICS_SPRITE_H
  39. #include <graphics/sprite.h>
  40. #endif
  41. #ifndef  GRAPHICS_TEXT_H
  42. #include <graphics/text.h>
  43. #endif
  44. #ifndef  HARDWARE_BLIT_H
  45. #include <hardware/blit.h>
  46. #endif
  47.  
  48. #ifdef __cplusplus
  49. extern "C" {
  50. #endif
  51.  
  52. /*------ BitMap primitives ------*/
  53. LONG BltBitMap( struct BitMap *srcBitMap, long xSrc, long ySrc,
  54.     struct BitMap *destBitMap, long xDest, long yDest, long xSize,
  55.     long ySize, unsigned long minterm, unsigned long mask,
  56.     PLANEPTR tempA );
  57. void BltTemplate( PLANEPTR source, long xSrc, long srcMod,
  58.     struct RastPort *destRP, long xDest, long yDest, long xSize,
  59.     long ySize );
  60. /*------ Text routines ------*/
  61. void ClearEOL( struct RastPort *rp );
  62. void ClearScreen( struct RastPort *rp );
  63. WORD TextLength( struct RastPort *rp, STRPTR string, unsigned long count );
  64. LONG Text( struct RastPort *rp, STRPTR string, unsigned long count );
  65. LONG SetFont( struct RastPort *rp, struct TextFont *textFont );
  66. struct TextFont *OpenFont( struct TextAttr *textAttr );
  67. void CloseFont( struct TextFont *textFont );
  68. ULONG AskSoftStyle( struct RastPort *rp );
  69. ULONG SetSoftStyle( struct RastPort *rp, unsigned long style,
  70.     unsigned long enable );
  71. /*------    Gels routines ------*/
  72. void AddBob( struct Bob *bob, struct RastPort *rp );
  73. void AddVSprite( struct VSprite *vSprite, struct RastPort *rp );
  74. void DoCollision( struct RastPort *rp );
  75. void DrawGList( struct RastPort *rp, struct ViewPort *vp );
  76. void InitGels( struct VSprite *head, struct VSprite *tail,
  77.     struct GelsInfo *gelsInfo );
  78. void InitMasks( struct VSprite *vSprite );
  79. void RemIBob( struct Bob *bob, struct RastPort *rp, struct ViewPort *vp );
  80. void RemVSprite( struct VSprite *vSprite );
  81. void SetCollision( unsigned long num,
  82.     void (*routine)(struct VSprite *vSprite, APTR),
  83.     struct GelsInfo *gelsInfo );
  84. void SortGList( struct RastPort *rp );
  85. void AddAnimOb( struct AnimOb *anOb, struct AnimOb **anKey,
  86.     struct RastPort *rp );
  87. void Animate( struct AnimOb **anKey, struct RastPort *rp );
  88. BOOL GetGBuffers( struct AnimOb *anOb, struct RastPort *rp, long flag );
  89. void InitGMasks( struct AnimOb *anOb );
  90. /*------    General graphics routines ------*/
  91. void DrawEllipse( struct RastPort *rp, long xCenter, long yCenter, long a,
  92.     long b );
  93. LONG AreaEllipse( struct RastPort *rp, long xCenter, long yCenter, long a,
  94.     long b );
  95. void LoadRGB4( struct ViewPort *vp, UWORD *colors, long count );
  96. void InitRastPort( struct RastPort *rp );
  97. void InitVPort( struct ViewPort *vp );
  98. ULONG MrgCop( struct View *view );
  99. ULONG MakeVPort( struct View *view, struct ViewPort *vp );
  100. void LoadView( struct View *view );
  101. void WaitBlit( void );
  102. void SetRast( struct RastPort *rp, unsigned long pen );
  103. void Move( struct RastPort *rp, long x, long y );
  104. void Draw( struct RastPort *rp, long x, long y );
  105. LONG AreaMove( struct RastPort *rp, long x, long y );
  106. LONG AreaDraw( struct RastPort *rp, long x, long y );
  107. LONG AreaEnd( struct RastPort *rp );
  108. void WaitTOF( void );
  109. void QBlit( struct bltnode *blit );
  110. void InitArea( struct AreaInfo *areaInfo, APTR vectorBuffer,
  111.     long maxVectors );
  112. void SetRGB4( struct ViewPort *vp, long index, unsigned long red,
  113.     unsigned long green, unsigned long blue );
  114. void QBSBlit( struct bltnode *blit );
  115. void BltClear( PLANEPTR memBlock, unsigned long byteCount,
  116.     unsigned long flags );
  117. void RectFill( struct RastPort *rp, long xMin, long yMin, long xMax,
  118.     long yMax );
  119. void BltPattern( struct RastPort *rp, PLANEPTR mask, long xMin, long yMin,
  120.     long xMax, long yMax, unsigned long maskBPR );
  121. ULONG ReadPixel( struct RastPort *rp, long x, long y );
  122. LONG WritePixel( struct RastPort *rp, long x, long y );
  123. BOOL Flood( struct RastPort *rp, unsigned long mode, long x, long y );
  124. void PolyDraw( struct RastPort *rp, long count, WORD *polyTable );
  125. void SetAPen( struct RastPort *rp, unsigned long pen );
  126. void SetBPen( struct RastPort *rp, unsigned long pen );
  127. void SetDrMd( struct RastPort *rp, unsigned long drawMode );
  128. void InitView( struct View *view );
  129. void CBump( struct UCopList *copList );
  130. void CMove( struct UCopList *copList, APTR destination, long data );
  131. void CWait( struct UCopList *copList, long v, long h );
  132. LONG VBeamPos( void );
  133. void InitBitMap( struct BitMap *bitMap, long depth, long width, long height );
  134. void ScrollRaster( struct RastPort *rp, long dx, long dy, long xMin, long yMin,
  135.     long xMax, long yMax );
  136. void WaitBOVP( struct ViewPort *vp );
  137. WORD GetSprite( struct SimpleSprite *sprite, long num );
  138. void FreeSprite( long num );
  139. void ChangeSprite( struct ViewPort *vp, struct SimpleSprite *sprite,
  140.     PLANEPTR newData );
  141. void MoveSprite( struct ViewPort *vp, struct SimpleSprite *sprite, long x,
  142.     long y );
  143. void LockLayerRom( struct Layer *layer );
  144. void UnlockLayerRom( struct Layer *layer );
  145. void SyncSBitMap( struct Layer *layer );
  146. void CopySBitMap( struct Layer *layer );
  147. void OwnBlitter( void );
  148. void DisownBlitter( void );
  149. struct TmpRas *InitTmpRas( struct TmpRas *tmpRas, PLANEPTR buffer,
  150.     long size );
  151. void AskFont( struct RastPort *rp, struct TextAttr *textAttr );
  152. void AddFont( struct TextFont *textFont );
  153. void RemFont( struct TextFont *textFont );
  154. PLANEPTR AllocRaster( unsigned long width, unsigned long height );
  155. void FreeRaster( PLANEPTR p, unsigned long width, unsigned long height );
  156. void AndRectRegion( struct Region *region, struct Rectangle *rectangle );
  157. BOOL OrRectRegion( struct Region *region, struct Rectangle *rectangle );
  158. struct Region *NewRegion( void );
  159. BOOL ClearRectRegion( struct Region *region, struct Rectangle *rectangle );
  160. void ClearRegion( struct Region *region );
  161. void DisposeRegion( struct Region *region );
  162. void FreeVPortCopLists( struct ViewPort *vp );
  163. void FreeCopList( struct CopList *copList );
  164. void ClipBlit( struct RastPort *srcRP, long xSrc, long ySrc,
  165.     struct RastPort *destRP, long xDest, long yDest, long xSize,
  166.     long ySize, unsigned long minterm );
  167. BOOL XorRectRegion( struct Region *region, struct Rectangle *rectangle );
  168. void FreeCprList( struct cprlist *cprList );
  169. struct ColorMap *GetColorMap( long entries );
  170. void FreeColorMap( struct ColorMap *colorMap );
  171. ULONG GetRGB4( struct ColorMap *colorMap, long entry );
  172. void ScrollVPort( struct ViewPort *vp );
  173. struct CopList *UCopperListInit( struct UCopList *uCopList, long n );
  174. void FreeGBuffers( struct AnimOb *anOb, struct RastPort *rp, long flag );
  175. void BltBitMapRastPort( struct BitMap *srcBitMap, long xSrc, long ySrc,
  176.     struct RastPort *destRP, long xDest, long yDest, long xSize,
  177.     long ySize, unsigned long minterm );
  178. BOOL OrRegionRegion( struct Region *srcRegion, struct Region *destRegion );
  179. BOOL XorRegionRegion( struct Region *srcRegion, struct Region *destRegion );
  180. BOOL AndRegionRegion( struct Region *srcRegion, struct Region *destRegion );
  181. void SetRGB4CM( struct ColorMap *colorMap, long index, unsigned long red,
  182.     unsigned long green, unsigned long blue );
  183. void BltMaskBitMapRastPort( struct BitMap *srcBitMap, long xSrc, long ySrc,
  184.     struct RastPort *destRP, long xDest, long yDest, long xSize,
  185.     long ySize, unsigned long minterm, PLANEPTR bltMask );
  186. BOOL AttemptLockLayerRom( struct Layer *layer );
  187. /*--- functions in V36 or higher (Release 2.0) ---*/
  188. APTR GfxNew( unsigned long gfxNodeType );
  189. void GfxFree( APTR gfxNodePtr );
  190. void GfxAssociate( APTR associateNode, APTR gfxNodePtr );
  191. void BitMapScale( struct BitScaleArgs *bitScaleArgs );
  192. UWORD ScalerDiv( unsigned long factor, unsigned long numerator,
  193.     unsigned long denominator );
  194. WORD TextExtent( struct RastPort *rp, STRPTR string, long count,
  195.     struct TextExtent *textExtent );
  196. ULONG TextFit( struct RastPort *rp, STRPTR string, unsigned long strLen,
  197.     struct TextExtent *textExtent, struct TextExtent *constrainingExtent,
  198.     long strDirection, unsigned long constrainingBitWidth,
  199.     unsigned long constrainingBitHeight );
  200. APTR GfxLookUp( APTR associateNode );
  201. BOOL VideoControl( struct ColorMap *colorMap, struct TagItem *tagarray );
  202. BOOL VideoControlTags( struct ColorMap *colorMap, unsigned long tag1Type,
  203.     ... );
  204. struct MonitorSpec *OpenMonitor( STRPTR monitorName,
  205.     unsigned long displayID );
  206. BOOL CloseMonitor( struct MonitorSpec *monitorSpec );
  207. DisplayInfoHandle FindDisplayInfo( unsigned long displayID );
  208. ULONG NextDisplayInfo( unsigned long displayID );
  209. ULONG GetDisplayInfoData( DisplayInfoHandle handle, UBYTE *buf,
  210.     unsigned long size, unsigned long tagID, unsigned long displayID );
  211. void FontExtent( struct TextFont *font, struct TextExtent *fontExtent );
  212. LONG ReadPixelLine8( struct RastPort *rp, unsigned long xstart,
  213.     unsigned long ystart, unsigned long width, UBYTE *array,
  214.     struct RastPort *tempRP );
  215. LONG WritePixelLine8( struct RastPort *rp, unsigned long xstart,
  216.     unsigned long ystart, unsigned long width, UBYTE *array,
  217.     struct RastPort *tempRP );
  218. LONG ReadPixelArray8( struct RastPort *rp, unsigned long xstart,
  219.     unsigned long ystart, unsigned long xstop, unsigned long ystop,
  220.     UBYTE *array, struct RastPort *temprp );
  221. LONG WritePixelArray8( struct RastPort *rp, unsigned long xstart,
  222.     unsigned long ystart, unsigned long xstop, unsigned long ystop,
  223.     UBYTE *array, struct RastPort *temprp );
  224. LONG GetVPModeID( struct ViewPort *vp );
  225. LONG ModeNotAvailable( unsigned long modeID );
  226. WORD WeighTAMatch( struct TextAttr *reqTextAttr,
  227.     struct TextAttr *targetTextAttr, struct TagItem *targetTags );
  228. WORD WeighTAMatchTags( struct TextAttr *reqTextAttr,
  229.     struct TextAttr *targetTextAttr, unsigned long tag1Type, ... );
  230. void EraseRect( struct RastPort *rp, long xMin, long yMin, long xMax,
  231.     long yMax );
  232. ULONG ExtendFont( struct TextFont *font, struct TagItem *fontTags );
  233. ULONG ExtendFontTags( struct TextFont *font, unsigned long tag1Type, ... );
  234. void StripFont( struct TextFont *font );
  235. /*--- functions in V39 or higher (Release 3) ---*/
  236. UWORD CalcIVG( struct View *v, struct ViewPort *vp );
  237. LONG AttachPalExtra( struct ColorMap *cm, struct ViewPort *vp );
  238. LONG ObtainBestPenA( struct ColorMap *cm, unsigned long r, unsigned long g,
  239.     unsigned long b, struct TagItem *tags );
  240. LONG ObtainBestPen( struct ColorMap *cm, unsigned long r, unsigned long g,
  241.     unsigned long b, unsigned long tag1Type, ... );
  242. void SetRGB32( struct ViewPort *vp, unsigned long n, unsigned long r,
  243.     unsigned long g, unsigned long b );
  244. ULONG GetAPen( struct RastPort *rp );
  245. ULONG GetBPen( struct RastPort *rp );
  246. ULONG GetDrMd( struct RastPort *rp );
  247. ULONG GetOutlinePen( struct RastPort *rp );
  248. void LoadRGB32( struct ViewPort *vp, ULONG *table );
  249. ULONG SetChipRev( unsigned long want );
  250. void SetABPenDrMd( struct RastPort *rp, unsigned long apen, unsigned long bpen,
  251.     unsigned long drawmode );
  252. void GetRGB32( struct ColorMap *cm, unsigned long firstcolor,
  253.     unsigned long ncolors, ULONG *table );
  254. struct BitMap *AllocBitMap( unsigned long sizex, unsigned long sizey,
  255.     unsigned long depth, unsigned long flags,
  256.     struct BitMap *friend_bitmap );
  257. void FreeBitMap( struct BitMap *bm );
  258. LONG GetExtSpriteA( struct ExtSprite *ss, struct TagItem *tags );
  259. LONG GetExtSprite( struct ExtSprite *ss, unsigned long tag1Type, ... );
  260. ULONG CoerceMode( struct ViewPort *vp, unsigned long monitorid,
  261.     unsigned long flags );
  262. void ChangeVPBitMap( struct ViewPort *vp, struct BitMap *bm,
  263.     struct DBufInfo *db );
  264. void ReleasePen( struct ColorMap *cm, unsigned long n );
  265. ULONG ObtainPen( struct ColorMap *cm, unsigned long n, unsigned long r,
  266.     unsigned long g, unsigned long b, long f );
  267. ULONG GetBitMapAttr( struct BitMap *bm, unsigned long attrnum );
  268. struct DBufInfo *AllocDBufInfo( struct ViewPort *vp );
  269. void FreeDBufInfo( struct DBufInfo *dbi );
  270. ULONG SetOutlinePen( struct RastPort *rp, unsigned long pen );
  271. ULONG SetWriteMask( struct RastPort *rp, unsigned long msk );
  272. void SetMaxPen( struct RastPort *rp, unsigned long maxpen );
  273. void SetRGB32CM( struct ColorMap *cm, unsigned long n, unsigned long r,
  274.     unsigned long g, unsigned long b );
  275. void ScrollRasterBF( struct RastPort *rp, long dx, long dy, long xMin,
  276.     long yMin, long xMax, long yMax );
  277. LONG FindColor( struct ColorMap *cm, unsigned long r, unsigned long g,
  278.     unsigned long b, long maxcolor );
  279. struct ExtSprite *AllocSpriteDataA( struct BitMap *bm, struct TagItem *tags );
  280. struct ExtSprite *AllocSpriteData( struct BitMap *bm, unsigned long tag1Type,
  281.     ... );
  282. LONG ChangeExtSpriteA( struct ViewPort *vp, struct ExtSprite *oldsprite,
  283.     struct ExtSprite *newsprite, struct TagItem *tags );
  284. LONG ChangeExtSprite( struct ViewPort *vp, struct ExtSprite *oldsprite,
  285.     struct ExtSprite *newsprite, unsigned long tag1Type, ... );
  286. void FreeSpriteData( struct ExtSprite *sp );
  287. void SetRPAttrsA( struct RastPort *rp, struct TagItem *tags );
  288. void SetRPAttrs( struct RastPort *rp, unsigned long tag1Type, ... );
  289. void GetRPAttrsA( struct RastPort *rp, struct TagItem *tags );
  290. void GetRPAttrs( struct RastPort *rp, unsigned long tag1Type, ... );
  291. ULONG BestModeIDA( struct TagItem *tags );
  292. ULONG BestModeID( unsigned long tag1Type, ... );
  293. /*--- functions in V40 or higher (Release 3.1) ---*/
  294. void WriteChunkyPixels( struct RastPort *rp, unsigned long xstart,
  295.     unsigned long ystart, unsigned long xstop, unsigned long ystop,
  296.     UBYTE *array, long bytesperrow );
  297.  
  298. #ifdef __cplusplus
  299. }
  300. #endif
  301.  
  302. #ifdef STORMPRAGMAS
  303. #ifndef _INCLUDE_PRAGMA_GRAPHICS_LIB_H
  304. #include <pragma/graphics_lib.h>
  305. #endif
  306. #endif
  307.  
  308. #endif     /* CLIB_GRAPHICS_PROTOS_H */
  309.